#ifndef __DATE_H
#define __DATE_H
#include <iostream>
using namespace std;
#define _SECOND ((INT64)10000000)
#define _MINUTE ((INT64)60 * _SECOND)
#define _HOUR   ((INT64)60 * _MINUTE)
#define _DAY    ((INT64)24 * _HOUR)
				
class Date
{

	int day, month, year;
public:
	Date(int day, int month, int year);
	Date(); // sets today's date

	void setToday();
	
	void setDay  (int day);
	void setMonth(int month);
	void setYear (int year);

	int getDay()   const {return day;}
	int getMonth() const {return month;}
	int getYear()  const {return year;}

	void addDays(int days);
	
	friend Date		operator+ (int num,const Date& date);
	friend Date		operator+ (const Date& date,int num);

	Date operator -(int add);

	const Date & operator++();
	const Date & operator--();

	Date operator++(int);
	Date operator--(int);

	int & operator[](int ind);


	friend ostream & operator<<(ostream & os,const Date & D); //#WD[2] RonnyR 3.12
	friend istream & operator>>(istream & in,Date & D);		  //#WD[2] RonnyR 3.12

};

#endif // __DATE_H